Concurrent Euclid (programming Language)
   HOME

TheInfoList



OR:

Concurrent Euclid (ConEuc) is a concurrent descendant of the
Euclid programming language {{Infobox programming language , name = Euclid , logo = , paradigm = multi-paradigm: structured, imperative, functional , year = 1970s , designer = Butler Lampson, Xerox PARC , developer = Ric Holt and James Cordy , latest_release_version ...
designed by James Cordy and
Ric Holt Richard Craig Holt (February 13, 1941 – April 12, 2019) was an American-Canadians, Canadian computer scientists, computer scientist. Early life Holt was born on in 1941 in Bartlesville, Oklahoma, to Vashti Young and C.P. Holt, but later move ...
, then at the
University of Toronto The University of Toronto (UToronto or U of T) is a public research university in Toronto, Ontario, Canada, located on the grounds that surround Queen's Park. It was founded by royal charter in 1827 as King's College, the first institution ...
, in 1980. ConEuc was designed for concurrent, high performance, highly reliable
system software System software is software designed to provide a platform for other software. Examples of system software include operating systems (OS) like macOS, Linux, Android and Microsoft Windows, computational science software, game engines, search engin ...
, such as
operating systems An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also inc ...
,
compilers In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
and
embedded microprocessor A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit, or a small number of integrated circuits. The microprocessor contains the arithmetic, logic, and control circu ...
systems. The
TUNIS ''Tounsi'' french: Tunisois , population_note = , population_urban = , population_metro = 2658816 , population_density_km2 = , timezone1 = CET , utc_offset1 ...
operating system, a
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
variant, was implemented entirely in Concurrent Euclid. ConEuc extends a core subset of Euclid with processes and
monitors Monitor or monitor may refer to: Places * Monitor, Alberta * Monitor, Indiana, town in the United States * Monitor, Kentucky * Monitor, Oregon, unincorporated community in the United States * Monitor, Washington * Monitor, Logan County, West Vir ...
(as specified by C.A.R. Hoare) as well as language constructs needed for systems programming including separate compilation, variables at absolute addresses, type converters, long integers and other features. ConEuc was implemented by a small (50k bytes), fast, portable compiler that was self-compiling and had replaceable code generators. High quality code generators for several computers, including the
PDP-11 The PDP-11 is a series of 16-bit minicomputers sold by Digital Equipment Corporation (DEC) from 1970 into the 1990s, one of a set of products in the Programmed Data Processor (PDP) series. In total, around 600,000 PDP-11s of all models were sold, ...
,
VAX-11 The VAX-11 is a discontinued family of 32-bit superminicomputers, running the Virtual Address eXtension (VAX) instruction set architecture (ISA), developed and manufactured by Digital Equipment Corporation (DEC). Development began in 1976. In a ...
,
Motorola 68000 The Motorola 68000 (sometimes shortened to Motorola 68k or m68k and usually pronounced "sixty-eight-thousand") is a 16/32-bit complex instruction set computer (CISC) microprocessor, introduced in 1979 by Motorola Semiconductor Products Sector ...
and
Motorola 6809 The Motorola 6809 ("''sixty-eight-oh-nine''") is an 8-bit microprocessor with some 16-bit features. It was designed by Motorola's Terry Ritter and Joel Boney and introduced in 1978. Although source compatible with the earlier Motorola 6800, the 6 ...
were developed that produced code comparable to the best C compilers. Concurrent Euclid programs that used concurrency could be run on a
bare machine In computer science, bare machine (or bare metal) refers to a computer executing instructions directly on logic hardware without an intervening operating system. Modern operating systems evolved through various stages, from elementary to the pre ...
(supported by a small assembly language kernel), or in simulated mode as an ordinary process running under an operating system. The
Turing programming language Turing is a high-level, general-purpose programming language developed in 1982 by Ric Holt and James Cordy, at University of Toronto in Ontario, Canada. It was designed in order to help students taking their first computer science course learn ...
is a direct descendant of Concurrent Euclid and its
Turing Plus Turing is a high-level, general-purpose programming language developed in 1982 by Ric Holt and James Cordy, at University of Toronto in Ontario, Canada. It was designed in order to help students taking their first computer science course learn ...
variant eventually replaced ConEuc in most applications.


References

*J.R. Cordy and R.C. Holt 1980. Specification of Concurrent Euclid. Technical reports CSRI-115 (July 1980) and CSRI-133 (August 1981), Computer Systems Research Institute, University of Toronto. 54 pages. *R.C. Holt 1982. Concurrent Euclid, the Unix System and Tunis. Addison-Wesley 1982. 323 pages.
R.C. Holt 1982. A short introduction to Concurrent Euclid.
ACM SIGPLAN Notices 17, 5 (May. 1982), 60-79.
R.C. Holt 1982. Tunis: a Unix look-alike written in Concurrent Euclid.
SIGOPS Operating Systems Review 16, 1 (January 1982), 4-5. {{Authority control Concurrent programming languages